package com.wuxinwudai.android.javaext;

/**
 *  Tuple4<A,B,C,D> 类用于构建四元元组
 * @author 吾心无待 于 2016年03月12日
 */
public class Tuple4<A,B,C,D> {
    private final A a;
    private final B b;
    private final C c;
    private final D d;

    private Tuple4(A a, B b, C c,D d) {
        this.a = a;
        this.b = b;
        this.c = c;
        this.d = d;
    }

    /**
     * 工厂方法创建 Tuple4 类的一个新实例
     * @param a 参数 a
     * @param b 参数 b
     * @param c 参数 c
     * @param d 参数 d
     * @param <A> 参数类型 A
     * @param <B> 参数类型 B
     * @param <C> 参数类型 C
     * @return 返回 Tuple4 泛型类的一个新实例
     */
    public static <A,B,C,D>Tuple4 create(A a,B b,C c,D d){
        return new Tuple4(a,b,c,d);
    }

    /**
     * 获取 A 元素
     * @return 返回 A 元素
     */
    public A getA() {
        return a;
    }

    /**
     * 获取 B 元素
     * @return 返回 B 元素
     */
    public B getB() {
        return b;
    }

    /**
     * 获取 C 元素
     * @return 返回 C 元素
     */
    public C getC() {
        return c;
    }

    /**
     * 获取 D 元素
     * @return 返回 D 元素
     */
    public D getD() {
        return d;
    }
}
